home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
telecomm
/
fnordadl
/
fn132src.zoo
/
ref-man
/
modem.tex
< prev
next >
Wrap
Text File
|
1991-09-02
|
17KB
|
500 lines
@comment Tell Emacs to use -*-texinfo-*- mode
@comment $Id: modem.tex,v 2.5 91/09/02 01:37:50 adrian Exp $
@node Modem Stuff, Events, The Sysop Command Reference, Top
@chapter Modem Stuff
@cindex Modems
Modems are finicky beasts, and cajoling them into talking to your
Fnordadel properly can be a tricky piece of business. This chapter, then,
deals with the various modem configuration options in Fnordadel, and
gives some tips on how to make a recalcitrant modem behave.
@node Basic Modem Requirements, Setting Up the Modem, Modem Stuff, Modem Stuff
@section Basic Modem Requirements
To run a Fnordadel, you must have a modem possessing a
modicum of basic features. These are:
@itemize @bullet
@item
Must be able to auto-answer the phone.
@item
Must be able to respond to DTR (Data Terminal Ready)
line control by the computer. DTR is supposed to be
pin 20 on the RS-232 connector. Ideally, the modem
should be able to hang up the phone, disable auto
answer, and go to `command' mode when the computer flips
DTR off (and reverse the above when DTR goes high).
@item
Must have the CD (Carrier Detect) line tracking the
status of the carrier. CD (or DCD) is supposed to be
pin 8 on the RS-232 connector.
@item
If you want to do any calling out (i.e., during networking
or whatever), the modem must be able to autodial the
phone using a command string.
@end itemize
Most modems are perfectly capable of all of the above.
If your modem is advertised as being ``Hayes-compatible'', then it
@emph{should} work fine. The DTR and CD settings will likely have to
be adjusted, since most modems do not by default listen to DTR
and most leave the CD line high all the time. These behaviours
can be changed either by using a DIP-switch or in the software;
it's almost always possible.
STadel 3.3b, from which Fnordadel is descended, was
advertised to work with the following list of modems, and there's
no reason to believe that we've introduced any incompatibilities:
@itemize @bullet
@item
Avatex 1200, 1200E, 1200HC, 2400HC
@item
Everex 2400
@item
FastComm 19200
@item
Hayes 1200, 2400
@item
Incomm 2400
@item
MultiTech 1200, 2400
@item
Prometheus 2400B2
@item
Supra 2400
@item
Telebit Trailblazer 19,200
@item
USR Courier 2400, HST 9600
@end itemize
@noindent
The Fnordadel developers both use the Supra 2400; we've been
running 24 hours a day for a few years now and have had no problems
with the wee beasties. Your mileage may vary, of course.
@node Setting Up the Modem
@section Setting Up the Modem
@cindex Modem setup
@cindex Setup, modem
If your modem meets the above criteria, then we're off.
(If it doesn't, then go buy a real modem---1200 and 2400 baud Hayes
compatible modems are dirt cheap these days.) In this section we'll
describe some of the @file{ctdlcnfg.sys} options for the modem.
@node Baud rate, Initialisation, Setting Up the Modem, Setting Up the Modem
@subsection Baud rate
@cindex Baud rates supported
You must tell Fnordadel the highest baud rate
at which the modem will function; this is accomplished by
setting the variable
@vindex sysbaud
@code{#sysbaud} in @file{ctdlcnfg.sys}.
@vindex sysbaud
@code{#sysbaud}
can have any one of the following values:
@table @code
@item 0
300 bps only
@item 1
300 and 1200 bps
@item 2
300, 1200 and 2400 bps
@item 3
300, 1200, 2400 and 9600 bps
@item 4
300 up to 19200 bps
@end table
Note that 4800 bps is not supported. The ST serial port
will do 4800, but we've never heard of a modem that will,
other than ones that will also go faster. If for some
reason you find yourself in dire need of 4800, see @ref{Fnordadel Support}.
@node Initialisation, Baud-rate detection, Baud rate, Setting Up the Modem
@subsection Initialisation
@cindex Modem setup
@cindex Modem initialisation
@cindex Initialisation, modem
Hayes compatible modems, at least, understand
a set of commands to control their behaviour. Fnordadel
requires that the modem be set up in a certain way; thus,
you must define a command string which will be sent to the
modem every time Fnordadel wants to reset the modem.
Simply put a line like the following:
@vindex modemsetup
@example
#modemsetup "AT &C1 &D2 V0 E0 M0 Q0 X4 S0=1\r%10"
@end example
@noindent
in your @file{ctdlcnfg.sys}. The example above will work on many
Hayes-compatible modems. The various parts mean:
@itemize @bullet
@item
The initial @samp{AT} tells the modem that a command
string is coming.
@item
@samp{&C1 &D2} sets up the required behaviour for the
CD and DTR lines (@pxref{Basic Modem Requirements}). If your
modem controls CD and DTR with hardware switches,
it probably will not support these commands, so you may have to
remove them.
@item
@samp{V0 E0 M0 Q0} selects numeric result codes (@pxref{Result codes}),
turns off command echoing, turns
off the built-in speaker, and turns on result codes.
@item
@samp{X4} tells the modem to return the full range of
result codes (@pxref{Result codes}).
@item
@samp{S0=1} tells the modem to answer the phone on the
first ring.
@item
@samp{\r} represents a carriage return, which must be
there to terminate the command string.
@item
And finally, @samp{%10} is a special notation which
causes Fnordadel to pause for 10 tenths of a
second (i.e., one second). This is necessary for
some modems, which take a comparatively long time
to process the command string. (See the front of
@file{ctdlcnfg.doc} for more on the format of these sorts
of string variables.)
@end itemize
Please be warned that your modem may not recognise
some or all of the above codes; they may be different, or
absent, or whatever. We've seen some pretty mental modem
behaviour, so be sure to read your modem manual.
A trick which has proved useful with many modems
is as follows: If the modem allows you to save its
settings in non-volatile @sc{ram} (i.e., if the settings can be
preserved when the modem is powered off), then you can use
a terminal program of some kind to manually set up the
modem the way Fnordadel wants it, by sending your version
of the above command string to the modem. Then use the command
to save settings (usually @samp{AT&W} or something). At this
point you can simply use @samp{ATZ\r%10} as the
@vindex modemsetup
@code{#modemsetup}
string; @samp{ATZ} has the effect of resetting the modem to the
saved state. The advantage of this is that the string is
shorter, so it can speed things up a bit, especially during
networking or auto-dialing when the modem is being reset
many times.
@node Baud-rate detection, Dialing out, Initialisation, Setting Up the Modem
@subsection Baud-rate detection
@cindex Baud-rate detection
Fnordadel must be able to detect the baud rate
of incoming calls, and it has a couple of ways to
accomplish this. The first is by @code{searchbaud}, and the
second is using result codes. Result codes are by far the
better method, and since most modems can support the
feature, we recommend it.
@node Searchbaud, Result codes, Baud-rate detection, Baud-rate detection
@subsubsection Searchbaud
@cindex Baud rate searching
If you define the @file{ctdlcnfg.sys} variable
@vindex searchbaud
@code{#searchbaud} to be @samp{1}, it will cause Fnordadel to
loop through the range of supported baud rates (as
defined by
@vindex sysbaud
@code{#sysbaud}; @pxref{Baud rate}), waiting
one-half second at each rate for a carriage return
(@samp{<CR>}) from the caller. The upshot of this is that
callers must hit @samp{<CR>} once or twice when they
connect with the @sc{bbs}.
@vindex searchbaud
If @code{#searchbaud} is @samp{0}, then your @sc{bbs} will
work at @emph{only} the highest baud rate represented by
@vindex sysbaud
@code{#sysbaud}. This is last-resort stuff, kids. You
should normally run with
@vindex searchbaud
@code{#searchbaud} set to @samp{1}
unless your modem absolutely fails to properly
detect other speed connections. (If your modem is this stupid, it might
be time to consider getting another one.)
The variable
@vindex connectprompt
@code{#connectprompt} modifies
the behaviour of
@vindex searchbaud
@code{#searchbaud} slightly; if defined to be @samp{1}, it
causes Fnordadel to loop through the baud rates,
spitting out a prompt which says ``Type return'' and
waiting fo